草庐IT

Java RMI 跟踪

全部标签

java - Log4j2:日志堆栈跟踪没有异常

我正在使用Log4j2,一些beta-10版本左右。发生异常时很容易记录堆栈跟踪:}catch(Exceptionex){log.error("Doingstuffwentwrong",ex);}假设虽然没有可用的Throwable对象-我只是意识到有问题并想记录错误:if(stuffIsWrong()){log.error("Stuffwentwrong");}我如何告诉Log4j2记录从当前方法开始的堆栈跟踪? 最佳答案 只需创建一个新的异常if(stuffIsWrong()){log.error("Stuffwentwrong

java - JVM 垃圾收集 - 跟踪年轻一代中的 Activity 对象

在收集年轻代内存时,JVM收集器仅扫描属于年轻代的那些根对象(堆中可直接从根集中访问的对象),并使用写屏障支持的卡表/memset来确定区域老一代的对象可能包含对年轻一代对象的引用。我的问题是,如果年轻收集器确定年轻代中的特定对象只有来自老年代对象的单个外部引用,它如何知道老年代对象本身不是垃圾,因此使年轻代对象“存活”并且不符合收集条件吗?例如,可能有一条从根集直接到老年代对象的路径,而老年代对象又引用了所说的年轻一代对象。年轻收集器通常认为这个年轻代对象是活的,还是在决定忽略/收集它之前如何确定指向它的老年代对象是否是活的/垃圾? 最佳答案

java - 如何在 Java 中使用 ICMP 和跟踪路由

Java没有用于ICMP和跟踪路由的原语。如何克服这个?基本上,我正在构建应该在*nix和Windows中运行的代码,并且需要一段可以在两个平台上运行的代码。 最佳答案 这是我今天写的用Java来“实现”traceroute命令的内容。我只在Windows中测试过,但它应该也可以在Linux中使用,尽管有几个traceroute工具可用于Linux,因此很可能需要对这些程序的存在进行一些检查。publicclassNetworkDiagnostics{privatefinalStringos=System.getProperty("

java - log4j 截断堆栈跟踪

我在将堆栈跟踪打印到我的日志文件时遇到问题。Log4j.属性:log4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=/var/log/app/application.loglog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss}%c{1}[%p]%m%nlog4j.rootLogger=wa

java - 混淆代码的堆栈跟踪显示未混淆的类名?

我正在使用Minecraft的服务器插件,它恰好被混淆了。我一直认为,经过混淆后,不可能恢复原来的类名,因为它们被完全删除了,我到处都是这样。修修补补一段时间后,我注意到当控制台中出现未捕获的异常时,它会显示类的混淆名称(例如atcratereloaded.aT.d),然后在括号内,通常会显示名称类和有问题的行,它显示了原始类名,这让我相信它实际上可以被反混淆。但是在我尝试过的所有工具中,似乎没有一个能够恢复原始类名,即使经过一些十六进制检查我已经确认原始类名实际上嵌入在编译的“.class”文件中。有没有什么工具可以使用它来自动恢复类名?示例堆栈跟踪:[03:49:57][Serve

java - 如何跟踪Java中日期的变化

我有一个应用程序需要在每次日期更改时(比如午夜)执行一些操作。每当日期更改时,应用程序都应保持不变。任何有关如何实现该功能的帮助都将不胜感激。 最佳答案 您正在寻找的是一个调度程序。Quartz可能是Java世界中最常用的调度程序,但如果您已经在使用该框架,则Spring具有一些有趣的调度功能。无论您选择哪个调度程序,您通常都会指定要发生的操作(有时称为“作业”)和发生时间(Quartz术语中的“触发器”)。在您的情况下,您可以将触发器设置为每天午夜运行,当它触发时,它会根据您的工作指定执行您需要完成的任何操作。

java - Logback SyslogAppender 堆栈跟踪日志记录前缀

我们最近从Log4J切换到Logback。除了SyslogAppender中的堆栈跟踪外,日志记录似乎运行良好。它们就像剩余的日志消息一样带有前缀。有什么方法可以禁用此前缀并确保它们将像在Log4JSyslogAppender中一样打印出来吗?提前致谢。当前行为:Apr0212:31:08host.name2012-04-02T12:31:08.418+0200ajp-bio-8009-exec-7com.gooddata.exception.servlet.HttpExceptionTranslatorERROR:Processingclient_request=/gdcwebapp

java - 如何在不向用户显示堆栈跟踪的情况下处理 servlet 过滤器中的错误状态?

我正在开发Jetty/RESTEasy应用程序。如果我从我的REST端点之一抛出WebApplicationException(myResponse),它会将给定的响应发送到客户端。当过滤器检测到错误时,我想要相同的行为:它应该停止继续执行,并且它应该向用户提供不包含堆栈跟踪的清晰的JSON格式错误。显然,只需写入响应流并从doFilter方法中返回ing即可。但这不适用于doFilter调用的其他方法。抛出任何异常都会满足条件#1,但我还没有想出一个理智的方法来满足条件#2。(你可以在底部看到我最好的尝试。)正如Perception在他的回答中所解释的那样,WebApplicatio

java - 如何在 Java 中将堆栈跟踪打印到标准输出以进行调试?

我是java新手。我想要java中的debug_print_backtrace之类的东西。我想将当前堆栈跟踪打印到标准输出或intellijidea日志窗口以进行调试。我曾经在php中使用debug_print_backtrace在运行时查找一些堆栈信息以进行调试。 最佳答案 你只需要一行。newException().printStackTrace(System.out);感谢GetcurrentstacktraceinJava将堆栈跟踪打印到stderr:newException().printStackTrace();

java - 跟踪 Javaws 启动

我有一个通过JavaWebstart启动的Java应用程序。有时,在应用程序的新部署之后,启动应用程序会导致在每次启动时下载两次。我还没有深究这个问题,但我认为它可能与我们的squid代理有关,它似乎与Java交互不良。为了进一步调查这一点,我想要的是查看javaws正在做什么的踪迹。javaws有没有这样的选项?只是一个小的更新,如果Java配置为显示控制台,那么当焦点在控制台上时点击“5”会将日志记录级别设置为5,这是最详细的日志记录级别。这可能很有用,但它不能解决应用程序没有做到这一点的情况。 最佳答案 要启用完整跟踪模式,请